<!--
  ~ Copyright (c) 2018-2021 VMware Inc. or its affiliates, All Rights Reserved.
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~   https://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->
<!DOCTYPE html>
<html th:replace="~{layout :: layout('docs', ~{::title}, ~{::meta[@name='description']}, ~{::link}, ~{::body})}" xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Project Reactor - Documentation</title>
    <meta name="description" content="Project Reactor Documentation links"/>
    <link href="/assets/css/docs.css" media="all" rel="stylesheet"/>
</head>
<body>

<div class="page-summary">
    <div class="page-summary-content">
        <div class="page-summary-wrap">
            <h1>Documentation</h1>
            <span id="author" class="author">Project Reactor reference documentation and Javadoc. </span>
            <ul>
                <li th:if="${upcoming.name} != null">
                    Upcoming BOM:
                    <span th:if="${upcoming.codename} == null" class="version releasetrain partial" title="Partially available release train" th:text="${upcoming.name}">UPCOMING</span>
                    <span th:if="${upcoming.codename} != null" class="version releasetrain partial" title="Partially available release train" th:text="${upcoming.name + ' (' + upcoming.codename + ')'}">STABLE_WITH_CODENAME</span>
                </li>
                <li>
                    Latest stable BOM:
                    <span th:if="${stable.codename} == null" class="version releasetrain" title="Stable release train" th:text="${stable.name}">STABLE</span>
                    <span th:if="${stable.codename} != null" class="version releasetrain" title="Stable release train" th:text="${stable.name + ' (' + stable.codename + ')'}">STABLE_WITH_CODENAME</span>
                </li>
                <li th:if="${milestone.name} != null">
                    Latest pre-release BOM:
                    <span th:if="${milestone.codename} == null" class="version releasetrain pre" title="MILESTONE release train" th:text="${milestone.name}">MILESTONE</span>
                    <span th:if="${milestone.codename} != null" class="version releasetrain pre" title="MILESTONE release train" th:text="${milestone.name + ' (' + milestone.codename + ')'}">MILESTONE_WITH_CODENAME</span>
                </li>
                <li>
                    Latest BOMs in previous release trains:
                    <span th:if="${oldBoms.versions} != null" th:each="bom : ${oldBoms.versions}">
                        <span class="version releasetrain maintenance" th:text="${bom}">OLD BOM</span>&nbsp;
                    </span>
                    <span th:if="${oldBoms.badVersions} != null" th:each="bom : ${oldBoms.badVersions}">
                        <span class="version releasetrain eol" th:text="${bom}">EOL BOM</span>&nbsp;
                    </span>
                </li>
            </ul>
        </div>
    </div>
</div>

<div id="main" class="book">

    <section id="applications">
        <article>
            <div class="title">
                <h1>Reactor Core</h1>
                <p>A Reactive Streams foundation for Java 8</p>
                <div class="version">
                    <table>
                        <tr><td>Version</td>
                            <td><a href="https://github.com/reactor/reactor-core/releases"
                                   title="See all reactor-core releases on GitHub"
                                   class="fa fa-archive">&nbsp;</a>
                            </td>
                            <td>Release Train</td>
                        </tr>

                        <!--RELEASEs from in-progress release train first-->
                        <tr th:if="${upcoming.coreVersion} != null">
                            <td>
                                    <span class="version"
                                          title="Latest Release In Incomplete BOM"
                                          th:text="${upcoming.coreVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-core/releases"
                                   th:href="@{https://github.com/reactor/reactor-core/releases/tag/v{tag}(tag=${upcoming.coreVersion})}"
                                   th:title="|See the reactor-core ${upcoming.coreVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span class="version releasetrain partial"
                                          title="Partially available release train"
                                          th:text="${upcoming.name}"> BOM</span>
                            </td>
                        </tr>

                        <!--RELEASEs with a complete BOM-->
                        <tr th:if="${stable.coreVersion} != null">
                            <td>
                                    <span class="version"
                                          th:text="${stable.coreVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-core/releases"
                                   th:href="@{https://github.com/reactor/reactor-core/releases/tag/v{tag}(tag=${stable.coreVersion})}"
                                   th:title="|See the reactor-core ${stable.coreVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span class="version releasetrain"
                                          title="Stable release train"
                                          th:text="${stable.name}">BOM</span>
                            </td>
                        </tr>

                        <!--Pre-Releases-->
                        <tr th:if="${milestone.coreVersion} != null">
                            <td>
                                    <span class="version pre"
                                          title="Latest Pre-Release"
                                          th:text="${milestone.coreVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-core/releases"
                                   th:href="@{https://github.com/reactor/reactor-core/releases/tag/v{tag}(tag=${milestone.coreVersion})}"
                                   th:title="|See the reactor-core ${milestone.coreVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span class="version releasetrain pre"
                                          title="MILESTONE release train"
                                          th:text="${milestone.name}"> BOM</span>
                            </td>
                        </tr>

                        <!--Out of BOM Milestones-->
                        <tr th:if="${oobmilestone.coreVersion} != null">
                            <td>
                                    <span class="version pre"
                                          title="Latest Pre-Release outside of a BOM"
                                          th:text="${oobmilestone.coreVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-core/releases"
                                   th:href="@{https://github.com/reactor/reactor-core/releases/tag/v{tag}(tag=${oobmilestone.coreVersion})}"
                                   th:title="|See the reactor-core ${oobmilestone.coreVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td/>
                        </tr>

                    </table>
                </div>
            </div>
            <div class="github">
                <a href="https://github.com/reactor/reactor-core">
                    <span class="fa fa-github"></span>
                    GitHub
                </a>
            </div>
            <div class="javadoc">
                <strong>Javadoc</strong><br />
                <a href="/docs/core/release/api/">Release</a> |
                <span th:if="${milestone.coreVersion} != null OR ${oobmilestone.coreVersion} != null"><a href="/docs/core/milestone/api/">Milestone</a> |</span>
                <a href="/docs/core/snapshot/api/">Snapshot</a> |
<!--                <a href="/docs/core/release/kdoc-api/">Kotlin Doc</a>-->
            </div>
            <div class="reference">
                <strong>Reference</strong><br />
                <a href="/docs/core/release/reference/">Release</a> |
                <span th:if="${milestone.coreVersion} != null OR ${oobmilestone.coreVersion} != null"><a href="/docs/core/milestone/reference/">Milestone</a> |</span>
                <a href="/docs/core/snapshot/reference/">Snapshot</a>
                <br />
                <a href="/docs/core/release/reference/docs/index.html#which-operator">Choosing an Operator</a>
            </div>
        </article>


        <article>
            <div class="title">
                <h1>Reactor Test</h1>
                <p>Test utilities</p>
                <div class="version">
                    <table>
                        <tr><td>Version</td>
                            <td>
                                <a href="https://github.com/reactor/reactor-core/releases"
                                   title="See all post reactor-test releases on reactor-core GitHub"
                                   class="fa fa-archive">&nbsp;</a>
                            </td>
                            <td>Release Train</td>
                        </tr>

                        <!--RELEASEs from in-progress release train first-->
                        <tr th:if="${upcoming.testVersion} != null">
                            <td>
                                    <span class="version"
                                          title="Latest Release In Incomplete BOM"
                                          th:text="${upcoming.testVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-core/releases"
                                   th:href="@{https://github.com/reactor/reactor-core/releases/tag/v{tag}(tag=${upcoming.testVersion})}"
                                   th:title="|See the reactor-test ${upcoming.testVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span class="version releasetrain partial"
                                          title="Partially available release train"
                                          th:text="${upcoming.name}"> BOM</span>
                            </td>
                        </tr>

                        <!--RELEASEs with a complete BOM-->
                        <tr th:if="${stable.testVersion} != null">
                            <td>
                                <span class="version" th:text="${stable.testVersion}"> VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-core/releases"
                                   th:href="@{https://github.com/reactor/reactor-core/releases/tag/v{tag}(tag=${stable.testVersion})}"
                                   th:title="|See the reactor-test ${stable.testVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span class="version releasetrain"
                                          title="Stable release train"
                                          th:text="${stable.name}"> BOM</span>
                            </td>
                        </tr>

                        <!--Pre-Releases-->
                        <tr th:if="${milestone.testVersion} != null">
                            <td>
                                    <span class="version pre"
                                          title="Latest Pre-Release"
                                          th:text="${milestone.testVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-core/releases/"
                                   th:href="@{https://github.com/reactor/reactor-core/releases/tag/v{tag}(tag=${milestone.testVersion})}"
                                   th:title="|See the reactor-test ${milestone.testVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span class="version releasetrain pre"
                                          title="MILESTONE release train"
                                          th:text="${milestone.name}">BOM</span>
                            </td>
                        </tr>

                        <!--Out of BOM Milestones-->
                        <tr th:if="${oobmilestone.testVersion} != null">
                            <td>
                                    <span class="version pre"
                                          title="Latest Pre-Release outside of a BOM"
                                          th:text="${oobmilestone.testVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-core/releases"
                                   th:href="@{https://github.com/reactor/reactor-core/releases/tag/v{tag}(tag=${oobmilestone.testVersion})}"
                                   th:title="|See the reactor-test ${oobmilestone.testVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td/>
                        </tr>

                    </table>
                </div>
            </div>
            <div class="github">
                <a
                        href="https://github.com/reactor/reactor-core/tree/master/reactor-test">
                    <span class="fa fa-github"></span> GitHub
                </a>
            </div>
            <div class="javadoc">
                <strong>Javadoc</strong><br />
                <a href="/docs/test/release/api/">Release</a> |
                <span th:if="${milestone.testVersion} != null OR ${oobmilestone.testVersion} != null"><a href="/docs/test/milestone/api/">Milestone</a> |</span>
                <a href="/docs/test/snapshot/api/">Snapshot</a> |
<!--                <a href="/docs/test/release/kdoc-api/">Kotlin Doc</a>-->

            </div>
            <div class="reference">
                <strong>Reference</strong><br />
                <a href="/docs/core/release/reference/docs/index.html#testing">Release</a> |
                <span th:if="${milestone.testVersion} != null OR ${oobmilestone.testVersion} != null"><a href="/docs/core/milestone/reference/docs/index.html#testing">Milestone</a> |</span>
                <a href="/docs/core/snapshot/reference/docs/index.html#testing">Snapshot</a>
            </div>
        </article>


        <article>
            <div class="title">
                <h1>Reactor Extra</h1>
                <p>Additional operators for Flux</p>
                <div class="version">
                    <table>
                        <tr><td>Version</td>
                            <td><a href="https://github.com/reactor/reactor-addons/releases"
                                   title="See all reactor-addons releases on GitHub"
                                   class="fa fa-archive">&nbsp;</a>
                            </td>
                            <td>Release Train</td>
                        </tr>

                        <!--RELEASEs from in-progress release train first-->
                        <tr th:if="${upcoming.extraVersion} != null">
                            <td>
                                    <span class="version"
                                          title="Latest Release In Incomplete BOM"
                                          th:text="${upcoming.extraVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-addons/releases"
                                   th:href="@{https://github.com/reactor/reactor-addons/releases/tag/v{tag}(tag=${upcoming.extraVersion})}"
                                   th:title="|See the reactor-extra ${upcoming.extraVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span class="version releasetrain partial"
                                          title="Partially available release train"
                                          th:text="${upcoming.name}"> BOM</span>
                            </td>
                        </tr>

                        <!--RELEASEs with a complete BOM-->
                        <tr th:if="${stable.extraVersion} != null">
                            <td>
                                <span class="version" th:text="${stable.extraVersion}"> VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-addons/releases"
                                   th:href="@{https://github.com/reactor/reactor-addons/releases/tag/v{tag}(tag=${stable.extraVersion})}"
                                   th:title="|See the reactor-extra ${stable.extraVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span class="version releasetrain"
                                          title="Stable release train"
                                          th:text="${stable.name}"> BOM</span>
                            </td>
                        </tr>

                        <!--Pre-Releases-->
                        <tr th:if="${milestone.extraVersion} != null">
                            <td>
                                    <span class="version pre"
                                          title="Latest Pre-Release"
                                          th:text="${milestone.extraVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-addons/releases/"
                                   th:href="@{https://github.com/reactor/reactor-addons/releases/tag/v{tag}(tag=${milestone.extraVersion})}"
                                   th:title="|See the reactor-extra ${milestone.extraVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span class="version releasetrain pre"
                                          title="MILESTONE release train"
                                          th:text="${milestone.name}">BOM</span>
                            </td>
                        </tr>

                        <!--Out of BOM Milestones-->
                        <tr th:if="${oobmilestone.extraVersion} != null">
                            <td>
                                    <span class="version pre"
                                          title="Latest Pre-Release outside of a BOM"
                                          th:text="${oobmilestone.extraVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-addons/releases"
                                   th:href="@{https://github.com/reactor/reactor-addons/releases/tag/v{tag}(tag=${oobmilestone.extraVersion})}"
                                   th:title="|See the reactor-extra ${oobmilestone.extraVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td/>
                        </tr>
                    </table>
                </div>
            </div>
            <div class="github">
                <a href="https://github.com/reactor/reactor-addons/#reactor-extra">
                    <span class="fa fa-github"></span> GitHub
                </a>
            </div>
            <div class="reference">
                <strong>Javadoc</strong><br />
                <a href="/docs/extra/release/api/">Release</a> |
                <span th:if="${milestone.extraVersion} != null OR ${oobmilestone.extraVersion} != null"><a href="/docs/extra/milestone/api/">Milestone</a> |</span>
                <a href="/docs/extra/snapshot/api/">Snapshot</a>
            </div>
        </article>


        <article>
            <div class="title">
                <h1>Reactor Netty</h1>
                <p>HTTP, TCP, UDP Clients/Servers using Netty</p>
                <div class="version">
                    <table>
                        <tr><td>Version</td>
                            <td><a href="https://github.com/reactor/reactor-netty/releases"
                                   title="See all reactor-netty releases on GitHub"
                                   class="fa fa-archive">&nbsp;</a>
                            </td>
                            <td>Release Train</td>
                        </tr>

                        <!--RELEASEs from in-progress release train first-->
                        <tr th:if="${upcoming.nettyVersion} != null">
                            <td>
                                    <span class="version"
                                          title="Latest Release In Incomplete BOM"
                                          th:text="${upcoming.nettyVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-netty/releases"
                                   th:href="@{https://github.com/reactor/reactor-netty/releases/tag/v{tag}(tag=${upcoming.nettyVersion})}"
                                   th:title="|See the reactor-netty ${upcoming.nettyVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span class="version releasetrain partial"
                                          title="Partially available release train"
                                          th:text="${upcoming.name}"> BOM</span>
                            </td>
                        </tr>

                        <!--RELEASEs with a complete BOM-->
                        <tr th:if="${stable.nettyVersion} != null">
                            <td>
                                <span class="version" th:text="${stable.nettyVersion}"> VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-netty/releases"
                                   th:href="@{https://github.com/reactor/reactor-netty/releases/tag/v{tag}(tag=${stable.nettyVersion})}"
                                   th:title="|See the reactor-netty ${stable.nettyVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span class="version releasetrain"
                                          title="Stable release train"
                                          th:text="${stable.name}"> BOM</span>
                            </td>
                        </tr>

                        <!--Pre-Releases-->
                        <tr th:if="${milestone.nettyVersion} != null">
                            <td>
                                    <span class="version pre"
                                          title="Latest Pre-Release"
                                          th:text="${milestone.nettyVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-netty/releases/"
                                   th:href="@{https://github.com/reactor/reactor-netty/releases/tag/v{tag}(tag=${milestone.nettyVersion})}"
                                   th:title="|See the reactor-netty ${milestone.nettyVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span class="version releasetrain pre"
                                          title="MILESTONE release train"
                                          th:text="${milestone.name}">BOM</span>
                            </td>
                        </tr>

                        <!--Out of BOM Milestones-->
                        <tr th:if="${oobmilestone.nettyVersion} != null">
                            <td>
                                    <span class="version pre"
                                          title="Latest Pre-Release outside of a BOM"
                                          th:text="${oobmilestone.nettyVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-netty/releases"
                                   th:href="@{https://github.com/reactor/reactor-netty/releases/tag/v{tag}(tag=${oobmilestone.nettyVersion})}"
                                   th:title="|See the reactor-netty ${oobmilestone.nettyVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td/>
                        </tr>
                    </table>
                </div>
            </div>
            <div class="github">
                <a href="https://github.com/reactor/reactor-netty">
                    <span class="fa fa-github"></span> GitHub
                </a>
            </div>
            <div class="javadoc">
                <strong>Javadoc</strong> <br/>
                <a href="/docs/netty/release/api/">Release</a> |
                <span th:if="${milestone.nettyVersion} != null OR ${oobmilestone.nettyVersion} != null"><a href="/docs/netty/milestone/api/">Milestone</a> |</span>
                <a href="/docs/netty/snapshot/api/">Snapshot</a>
            </div>
            <div class="reference">
                <strong>Reference</strong><br />
                <a href="/docs/netty/release/reference/docs/index.html">Release</a> |
                <span th:if="${milestone.testVersion} != null OR ${oobmilestone.nettyVersion} != null"><a href="/docs/netty/milestone/reference/docs/index.html">Milestone</a> |</span>
                <a href="/docs/netty/snapshot/reference/docs/index.html">Snapshot</a>
            </div>
        </article>


        <article>
            <div class="title">
                <h1>Reactor Adapter</h1>
                <p>Adapt to/from other reactive libraries</p>
                <div class="version">
                    <table>
                        <tr><td>Version</td>
                            <td><a href="https://github.com/reactor/reactor-addons/releases"
                                   title="See all reactor-addons releases on GitHub"
                                   class="fa fa-archive">&nbsp;</a>
                            </td>
                            <td>Release Train</td>
                        </tr>
                        <!--RELEASEs from in-progress release train first-->
                        <tr th:if="${upcoming.adapterVersion} != null">
                            <td>
                                    <span class="version"
                                          title="Latest Release In Incomplete BOM"
                                          th:text="${upcoming.adapterVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-addons/releases"
                                   th:href="@{https://github.com/reactor/reactor-addons/releases/tag/v{tag}(tag=${upcoming.adapterVersion})}"
                                   th:title="|See the reactor-adapter ${upcoming.adapterVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span class="version releasetrain partial"
                                          title="Partially available release train"
                                          th:text="${upcoming.name}"> BOM</span>
                            </td>
                        </tr>

                        <!--RELEASEs with a complete BOM-->
                        <tr th:if="${stable.adapterVersion} != null">
                            <td>
                                <span class="version" th:text="${stable.adapterVersion}"> VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-addons/releases"
                                   th:href="@{https://github.com/reactor/reactor-addons/releases/tag/v{tag}(tag=${stable.adapterVersion})}"
                                   th:title="|See the reactor-adapter ${stable.adapterVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span class="version releasetrain"
                                          title="Stable release train"
                                          th:text="${stable.name}"> BOM</span>
                            </td>
                        </tr>

                        <!--Pre-Releases-->
                        <tr th:if="${milestone.adapterVersion} != null">
                            <td>
                                    <span class="version pre"
                                          title="Latest Pre-Release"
                                          th:text="${milestone.adapterVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-addons/releases/"
                                   th:href="@{https://github.com/reactor/reactor-addons/releases/tag/v{tag}(tag=${milestone.adapterVersion})}"
                                   th:title="|See the reactor-adapter ${milestone.adapterVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span class="version releasetrain pre"
                                          title="MILESTONE release train"
                                          th:text="${milestone.name}">BOM</span>
                            </td>
                        </tr>

                        <!--Out of BOM Milestones-->
                        <tr th:if="${oobmilestone.adapterVersion} != null">
                            <td>
                                    <span class="version pre"
                                          title="Latest Pre-Release outside of a BOM"
                                          th:text="${oobmilestone.adapterVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-addons/releases"
                                   th:href="@{https://github.com/reactor/reactor-addons/releases/tag/v{tag}(tag=${oobmilestone.adapterVersion})}"
                                   th:title="|See the reactor-adapter ${oobmilestone.adapterVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td/>
                        </tr>
                    </table>
                </div>
            </div>
            <div class="github">
                <a href="https://github.com/reactor/reactor-addons/#reactor-adapter">
                    <span class="fa fa-github"></span> GitHub
                </a>
            </div>
            <div class="reference">
                <strong>Javadoc</strong><br />
                <a href="/docs/adapter/release/api/">Release</a> |
                <span th:if="${milestone.adapterVersion} != null OR ${oobmilestone.adapterVersion} != null"><a href="/docs/adapter/milestone/api/">Milestone</a> |</span>
                <a href="/docs/adapter/snapshot/api/">Snapshot</a>
            </div>
        </article>

        <article>
            <div class="title">
                <h1>Reactor Kafka</h1>
                <p>Reactive bridge to Apache Kafka</p>
                <div class="version">
                    <table>
                        <tr><td>Version</td>
                            <td><a href="https://github.com/reactor/reactor-kafka/releases"
                                   title="See all reactor-kafka releases on GitHub"
                                   class="fa fa-archive">&nbsp;</a>
                            </td>
                            <td>Release Train</td>
                        </tr>
                        <!--RELEASEs from in-progress release train first-->
                        <tr th:if="${upcoming.kafkaVersion} != null">
                            <td>
                                    <span class="version"
                                          title="Latest Release In Incomplete BOM"
                                          th:text="${upcoming.kafkaVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-kafka/releases"
                                   th:href="@{https://github.com/reactor/reactor-kafka/releases/tag/v{tag}(tag=${upcoming.kafkaVersion})}"
                                   th:title="|See the reactor-kafka ${upcoming.kafkaVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span class="version releasetrain partial"
                                          title="Partially available release train"
                                          th:text="${upcoming.name}"> BOM</span>
                            </td>
                        </tr>

                        <!--RELEASEs with a complete BOM-->
                        <tr th:if="${stable.kafkaVersion} != null">
                            <td>
                                <span class="version" th:text="${stable.kafkaVersion}"> VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-kafka/releases"
                                   th:href="@{https://github.com/reactor/reactor-kafka/releases/tag/v{tag}(tag=${stable.kafkaVersion})}"
                                   th:title="|See the reactor-kafka ${stable.kafkaVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span class="version releasetrain"
                                          title="Stable release train"
                                          th:text="${stable.name}"> BOM</span>
                            </td>
                        </tr>

                        <!--Pre-Releases-->
                        <tr th:if="${milestone.kafkaVersion} != null">
                            <td>
                                    <span class="version pre"
                                          title="Latest Pre-Release"
                                          th:text="${milestone.kafkaVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-kafka/releases/"
                                   th:href="@{https://github.com/reactor/reactor-kafka/releases/tag/v{tag}(tag=${milestone.kafkaVersion})}"
                                   th:title="|See the reactor-kafka ${milestone.kafkaVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span class="version releasetrain pre"
                                          title="MILESTONE release train"
                                          th:text="${milestone.name}">BOM</span>
                            </td>
                        </tr>

                        <!--Out of BOM Milestones-->
                        <tr th:if="${oobmilestone.kafkaVersion} != null">
                            <td>
                                    <span class="version pre"
                                          title="Latest Pre-Release outside of a BOM"
                                          th:text="${oobmilestone.kafkaVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-kafka/releases"
                                   th:href="@{https://github.com/reactor/reactor-kafka/releases/tag/v{tag}(tag=${oobmilestone.kafkaVersion})}"
                                   th:title="|See the reactor-kafka ${oobmilestone.kafkaVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td/>
                        </tr>
                    </table>
                </div>
            </div>
            <div class="github">
                <a href="https://github.com/reactor/reactor-kafka">
                    <span class="fa fa-github"></span> GitHub
                </a>
            </div>
            <div class="javadoc">
                <strong>Javadoc</strong> <br/>
                <a href="/docs/kafka/release/api/">Release</a> |
                <a href="/docs/kafka/snapshot/api/">Snapshot</a>
            </div>
            <div class="reference">
                <strong>Reference</strong> <br/>
                <a href="/docs/kafka/release/reference/">Release</a> |
                <a href="/docs/kafka/snapshot/reference/">Snapshot</a>
            </div>
        </article>

        <article>
            <div class="title">
                <h1>Reactor Kotlin Extensions</h1>
                <p>Kotlin extensions for all Java artifacts in Dysprosium+</p>
                <div class="version">
                    <table>
                        <tr><td>Version</td>
                            <td><a href="https://github.com/reactor/reactor-kotlin-extensions/releases"
                                   title="See all reactor-kotlin-extensions releases on GitHub"
                                   class="fa fa-archive">&nbsp;</a>
                            </td>
                            <td>Release Train</td>
                        </tr>

                        <!--RELEASEs from in-progress release train first-->
                        <tr th:if="${upcoming.kotlinVersion} != null">
                            <td>
                                    <span class="version"
                                          title="Latest Release In Incomplete BOM"
                                          th:text="${upcoming.kotlinVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-kotlin-extensions/releases"
                                   th:href="@{https://github.com/reactor/reactor-kotlin-extensions/releases/tag/v{tag}(tag=${upcoming.kotlinVersion})}"
                                   th:title="|See the reactor-core ${upcoming.kotlinVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span class="version releasetrain partial"
                                          title="Partially available release train"
                                          th:text="${upcoming.name}"> BOM</span>
                            </td>
                        </tr>

                        <!--RELEASEs with a complete BOM-->
                        <tr th:if="${stable.kotlinVersion} != null">
                            <td>
                                    <span class="version"
                                          th:text="${stable.kotlinVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-kotlin-extensions/releases"
                                   th:href="@{https://github.com/reactor/reactor-kotlin-extensions/releases/tag/v{tag}(tag=${stable.kotlinVersion})}"
                                   th:title="|See the reactor-kotlin-extensions ${stable.kotlinVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span class="version releasetrain"
                                          title="Stable release train"
                                          th:text="${stable.name}">BOM</span>
                            </td>
                        </tr>

                        <!--Pre-Releases-->
                        <tr th:if="${milestone.kotlinVersion} != null">
                            <td>
                                    <span class="version pre"
                                          title="Latest Pre-Release"
                                          th:text="${milestone.kotlinVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-kotlin-extensions/releases"
                                   th:href="@{https://github.com/reactor/reactor-kotlin-extensions/releases/tag/v{tag}(tag=${milestone.kotlinVersion})}"
                                   th:title="|See the reactor-kotlin-extensions ${milestone.kotlinVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span class="version releasetrain pre"
                                          title="MILESTONE release train"
                                          th:text="${milestone.name}"> BOM</span>
                            </td>
                        </tr>

                        <!--Out of BOM Milestones-->
                        <tr th:if="${oobmilestone.kotlinVersion} != null">
                            <td>
                                    <span class="version pre"
                                          title="Latest Pre-Release outside of a BOM"
                                          th:text="${oobmilestone.kotlinVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-kotlin-extensions/releases"
                                   th:href="@{https://github.com/reactor/reactor-kotlin-extensions/releases/tag/v{tag}(tag=${oobmilestone.kotlinVersion})}"
                                   th:title="|See the reactor-kotlin-extensions ${oobmilestone.kotlinVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td/>
                        </tr>

                    </table>
                </div>
            </div>
            <div class="github">
                <a href="https://github.com/reactor/reactor-kotlin-extensions">
                    <span class="fa fa-github"></span>
                    GitHub
                </a>
            </div>
<!--            <div class="javadoc">-->
<!--                <strong>Kotlin Doc</strong><br />-->
<!--                <a href="/docs/kotlin/release/kdoc-api/">Release</a> |-->
<!--                <span th:if="${milestone.kotlinVersion} != null"><a href="/docs/kotlin/milestone/kdoc-api/">Milestone</a> |</span>-->
<!--                <a href="/docs/kotlin/snapshot/kdoc-api/">Snapshot</a>-->
<!--            </div>-->
            <div class="javadoc">
                <strong>Javadoc (temporarily instead of Kotlin Doc)</strong><br />
                <a href="/docs/kotlin/release/api/">Release</a> |
                <span th:if="${milestone.kotlinVersion} != null OR ${oobmilestone.kotlinVersion} != null"><a href="/docs/kotlin/milestone/api/">Milestone</a> |</span>
                <a href="/docs/kotlin/snapshot/api/">Snapshot</a>
            </div>
            <div class="reference">
                <strong>Reference</strong> <br/>
                See Core Reference, Kotlin section
            </div>
        </article>

        <article>
            <div class="title">
                <h1>Reactor RabbitMQ</h1>
                <p>Reactive bridge to RabbitMQ</p>
                <div class="version">
                    <table>
                        <tr><td>Version</td>
                            <td><a
                                    href="https://github.com/reactor/reactor-rabbitmq/releases"
                                   title="See all reactor-rabbitmq releases on GitHub"
                                   class="fa fa-archive">&nbsp;</a>
                            </td>
                            <td>Release Train</td>
                        </tr>
                        <!--RELEASEs from in-progress release train first-->
                        <tr th:if="${upcoming.rabbitVersion} != null">
                            <td>
                                    <span class="version"
                                          title="Latest Release In Incomplete BOM"
                                          th:text="${upcoming.rabbitVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-rabbitmq/releases"
                                   th:href="@{https://github.com/reactor/reactor-rabbitmq/releases/tag/v{tag}(tag=${upcoming.rabbitVersion})}"
                                   th:title="|See the reactor-rabbitmq ${upcoming.rabbitVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span th:if="${upcoming.name} != null"
				          class="version releasetrain partial"
                                          title="Partially available release train"
                                          th:text="${upcoming.name}"> BOM</span>
                            </td>
                        </tr>

                        <!--RELEASEs with a complete BOM-->
                        <tr th:if="${stable.rabbitVersion} != null">
                            <td>
                                    <span class="version"
                                          th:text="${stable.rabbitVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-rabbitmq/releases"
                                   th:href="@{https://github.com/reactor/reactor-rabbitmq/releases/tag/v{tag}(tag=${stable.rabbitVersion})}"
                                   th:title="|See the reactor-rabbitmq ${stable.rabbitVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span class="version releasetrain"
                                          title="Stable release train"
                                          th:text="${stable.name}">BOM</span>
                            </td>
                        </tr>

                        <!--Pre-Releases-->
                        <tr th:if="${milestone.rabbitVersion} != null">
                            <td>
                                    <span class="version pre"
                                          title="Latest Pre-Release"
                                          th:text="${milestone.rabbitVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-rabbitmq/releases"
                                   th:href="@{https://github.com/reactor/reactor-rabbitmq/releases/tag/v{tag}(tag=${milestone.rabbitVersion})}"
                                   th:title="|See the reactor-rabbitmq ${milestone.rabbitVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span th:if="${milestone.name} != null"
                                          class="version releasetrain pre"
                                          title="MILESTONE release train"
                                          th:text="${milestone.name}"> BOM</span>
                            </td>
                        </tr>

                        <!--Out of BOM Milestones-->
                        <tr th:if="${oobmilestone.rabbitVersion} != null">
                            <td>
                                    <span class="version pre"
                                          title="Latest Pre-Release outside of a BOM"
                                          th:text="${oobmilestone.rabbitVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-rabbitmq/releases"
                                   th:href="@{https://github.com/reactor/reactor-rabbitmq/releases/tag/v{tag}(tag=${oobmilestone.rabbitVersion})}"
                                   th:title="|See the reactor-rabbitmq ${oobmilestone.rabbitVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td/>
                        </tr>
                    </table>
                </div>
            </div>
            <div class="github">
                <a href="https://github.com/reactor/reactor-rabbitmq">
                    <span class="fa fa-github"></span> GitHub
                </a>
            </div>
            <div class="javadoc">
                <strong>Javadoc</strong> <br/>
                <a href="/docs/rabbitmq/release/api/">Release</a> |
                <span th:if="${milestone.rabbitVersion} != null OR ${oobmilestone.rabbitVersion} != null"><a href="/docs/rabbitmq/milestone/api/">Milestone</a> |</span>
                <a href="/docs/rabbitmq/snapshot/api/">Snapshot</a>
            </div>
            <div class="reference">
                <strong>Reference</strong> <br/>
                <a href="/docs/rabbitmq/release/reference/">Release</a> |
                <span th:if="${milestone.rabbitVersion} != null OR ${oobmilestone.rabbitVersion} != null"><a href="/docs/rabbitmq/milestone/reference/">Milestone</a> |</span>
                <a href="/docs/rabbitmq/snapshot/reference/">Snapshot</a>
            </div>
        </article>

        <article>
            <div class="title">
                <h1>Reactor Pool</h1>
                <p>Generic object pool for reactive applications</p>
                <div class="version">
                    <table>
                        <tr><td>Version</td>
                            <td><a
                                    href="https://github.com/reactor/reactor-pool/releases"
                                    title="See all reactor-pool releases on GitHub"
                                    class="fa fa-archive">&nbsp;</a>
                            </td>
                            <td>Release Train</td>
                        </tr>
                        <!--RELEASEs from in-progress release train first-->
                        <tr th:if="${upcoming.poolVersion} != null">
                            <td>
                                    <span class="version"
                                          title="Latest Release In Incomplete BOM"
                                          th:text="${upcoming.poolVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-pool/releases"
                                   th:href="@{https://github.com/reactor/reactor-pool/releases/tag/v{tag}(tag=${upcoming.poolVersion})}"
                                   th:title="|See the reactor-pool ${upcoming.poolVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span th:if="${upcoming.name} != null"
                                          class="version releasetrain partial"
                                          title="Partially available release train"
                                          th:text="${upcoming.name}"> BOM</span>
                            </td>
                        </tr>

                        <!--RELEASEs with a complete BOM-->
                        <tr th:if="${stable.poolVersion} != null">
                            <td>
                                    <span class="version"
                                          th:text="${stable.poolVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-pool/releases"
                                   th:href="@{https://github.com/reactor/reactor-pool/releases/tag/v{tag}(tag=${stable.poolVersion})}"
                                   th:title="|See the reactor-pool ${stable.poolVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span class="version releasetrain"
                                          title="Stable release train"
                                          th:text="${stable.name}">BOM</span>
                            </td>
                        </tr>

                        <!--Pre-Releases-->
                        <tr th:if="${milestone.poolVersion} != null">
                            <td>
                                    <span class="version pre"
                                          title="Latest Pre-Release"
                                          th:text="${milestone.poolVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-pool/releases"
                                   th:href="@{https://github.com/reactor/reactor-pool/releases/tag/v{tag}(tag=${milestone.poolVersion})}"
                                   th:title="|See the reactor-pool ${milestone.poolVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td>
                                    <span th:if="${milestone.name} != null"
                                          class="version releasetrain pre"
                                          title="MILESTONE release train"
                                          th:text="${milestone.name}"> BOM</span>
                            </td>
                        </tr>

                        <!--Out of BOM Milestones-->
                        <tr th:if="${oobmilestone.poolVersion} != null">
                            <td>
                                    <span class="version pre"
                                          title="Latest Pre-Release outside of a BOM"
                                          th:text="${oobmilestone.poolVersion}">VERSION</span>
                            </td>
                            <td>
                                <a href="https://github.com/reactor/reactor-pool/releases"
                                   th:href="@{https://github.com/reactor/reactor-pool/releases/tag/v{tag}(tag=${oobmilestone.poolVersion})}"
                                   th:title="|See the reactor-pool ${oobmilestone.poolVersion} release notes on GitHub|"
                                   class="fa fa-file-text">&nbsp;</a>
                            </td>
                            <td/>
                        </tr>
                    </table>
                </div>
            </div>
            <div class="github">
                <a href="https://github.com/reactor/reactor-pool">
                    <span class="fa fa-github"></span> GitHub
                </a>
            </div>
            <div class="javadoc">
                <strong>Javadoc</strong> <br/>
                <a href="/docs/pool/release/api/">Release</a> |
                <span th:if="${milestone.poolVersion} != null OR ${oobmilestone.poolVersion} != null"><a href="/docs/pool/milestone/api/">Milestone</a> |</span>
                <a href="/docs/pool/snapshot/api/">Snapshot</a>
            </div>
        </article>


        <!--/* The rest of the links are handled manually still */-->

        <article>
            <div class="title">
                <h1>BlockHound</h1>
                <p>Java agent for detecting blocking calls from non-blocking threads</p>

                <div class="version">
                    <img alt="GitHub (pre-)release" src="https://img.shields.io/github/release-pre/reactor/BlockHound.svg?label=">
                </div>
            </div>
            <div class="github">
                <a href="https://github.com/reactor/BlockHound">
                    <span class="fa fa-github"></span> GitHub
                </a>
            </div>
            <div class="javadoc">
                <strong>Javadoc</strong> <br/>
                <a href="/docs/BlockHound/milestone/api/">Milestone</a> |
                <a href="/docs/BlockHound/snapshot/api/">Snapshot</a>
            </div>
            <div class="reference">
                <strong>Reference</strong> <br/>
                <a href="https://github.com/reactor/BlockHound/tree/master/docs">Snapshot</a>
            </div>
        </article>
        <article>
            <div class="title">
                <h1>Reactor Core .NET</h1>
                <p>Incubating Reactive Streams foundation for .NET</p>
                <div class="version">
                    <span class="version">0.6.1</span>
                </div>
            </div>
            <div class="github">
                <a href="https://github.com/reactor/reactor-core-dotnet"><span
                        class="fa fa-github"></span> GitHub</a>
            </div>
            <div class="nuget">
                <a href="https://www.nuget.org/packages/Reactor.Core/">
                    <span class="fa fa-book"></span> nuget
                </a>
            </div>
        </article>
        <article>
            <div class="title">
                <h1>Reactor Core JS</h1>
                <p>Incubating Reactive Streams foundation for JavaScript</p>
                <div class="version">
                    <span class="version">0.5.0</span>
                </div>
            </div>
            <div class="github">
                <a href="https://github.com/reactor/reactor-core-js">
                    <span class="fa fa-github"></span> GitHub
                </a>
            </div>
            <div class="npm">
                <a href="https://www.npmjs.com/package/reactor-core-js">
                    <span class="fa fa-book"></span> NPM
                </a>
            </div>
        </article>
    </section>
    <div class="details">
      <p>Legend:</p>
        <ul>
            <li><span class="version releasetrain partial">RELEASE-TRAIN</span>: Artifacts in these release trains have not all been released (<span th:if="${upcoming.coreVersion} != null">currently <span class="version releasetrain partial" th:text="${upcoming.name}"> CURRENT</span></span><span th:if="${upcoming.coreVersion} == null">e.g. <span class="version releasetrain partial"> Californium-SR30</span></span>).  </li>
            <li><span class="version releasetrain">RELEASE-TRAIN</span>: Artifacts in the latest stable and fully available release train (<span th:if="${stable.coreVersion} != null">currently <span class="version releasetrain" th:text="${stable.name}">CURRENT</span></span> <span th:if="${stable.coreVersion} == null">e.g. <span class="version releasetrain">Bismuth-SR10</span></span>).  </li>
            <li><span class="version releasetrain pre">RELEASE-TRAIN</span>: Artifacts in the latest pre-release release train (<span th:if="${milestone.coreVersion} != null">currently <span class="version releasetrain pre" th:text="${milestone.name}">CURRENT</span></span> <span th:if="${milestone.coreVersion} == null">e.g. <span class="version releasetrain pre">Californium-M1</span></span>).  </li>
            <li><span class="version">version</span>: Available RELEASE artifacts.</li>
            <li><span class="version pre">version</span>: Available MILESTONE or other pre-release artifacts (available from repo.spring.io).</li>
        </ul>
    </div>
</div>

</body>
</html>
